package com.lonwin.mes2u8.domain.u8;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * U8存货档案添加入参
 * @author DELL
 * @Date 2023-12-13 11:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class U8InventoryAddParam {
    // 存货编码
    private String code;
    // 存货名称
    private String name;
    // 存货代码
    private String invaddcode;
    // 规格型号
    private String specs;
    // 所属分类码
    private String sort_code;
    // 计量单位组编码
    private String unitgroup_code;
    private String unitgroup_name;
    private String ccomunitname;
    // 计量单位组类型(0=无换算;1=固定;2=浮动)
    private Integer unitgroup_type;
    // 主计量单位
    private String main_measure;
    // 采购默认单位编码
    private String puunit_code;
    // 采购默认单位名称
    private String puunit_name;
    // 采购默认单位换算率
    private Integer puunit_ichangrate;
    // 销售默认单位编码
    private String saunit_code;
    // 销售默认单位名称
    private String saunit_name;
    // 销售默认单位换算率
    private Integer saunit_ichangrate;
    // 库存默认单位编码
    private String stunit_code;
    // 库存默认单位名称
    private String stunit_name;
    // 库存默认单位换算率
    private Integer stunit_ichangrate;
    // 零售默认单位编码
    private String caunit_code;
    // 零售默认单位名称
    private String caunit_name;
    private String cAssComunitCode;
    private String cProductUnit;
    private String cshopunit;
    // 条形码管理
    private String bbarcode;
    // 条形码
    private String barcode;
    // 参考售价
    private Integer ref_sale_price;
    // 最低售价
    private Integer bottom_sale_price;
    // 零售单价
    private Integer retailprice;
    // 零售价格
    private Integer fRetailPrice;
    // 适用零售(0:否 1：是)
    private String bsuitretail;
    // 启用日期
    private Date start_date;
    // 停用日期
    private Date end_date;
    // 默认仓库
    private String defwarehouse;
    // 默认仓库名称
    private String defwarehousename;
    // 供应类型
    private String iSupplyType;
    // 领料方式
    private String drawtype;
    // 进项税率
    private BigDecimal iimptaxrate;
    // 销项税率
    private BigDecimal tax_rate;
    // BOM展开单位
    private Integer ibomexpandunittype;
    // 安全库存方法
    private Integer isurenesstype;
    // 服务产品
    private String bsrvproduct;
    // 服务配件
    private String bsrvfittings;
    // 服务项目
    private String bsrvitem;
    // 供需政策
    private String cSRPolicy;
    // 供应期间类型
    private Integer iSupplyPeriodType;
    // 计划方法
    private String cPlanMethod;
    // 计划价或售价
    private Integer pro_sale_price;
    // 计价方式
    private String pricetype;
    // 计件
    private String bpiece;
    // 检查ATP
    private Integer icheckatp;
    // 检验方式
    private Integer TestStyle;
    // 可用日期
    private Integer iAvailabilityDate;
    // 领料方式
    private Integer idrawtype;
    // 模型
    private String binvmodel;
    // 是否ATO模型
    private String bATOModel;
    // 是否PTO模型
    private String bPTOModel;
    // 是否备件
    private String bequipment;
    // 是否采购
    private String purchase_flag;
    // 是否工程物料
    private String bprjmat;
    // 是否计划品
    private String bPlanInv;
    // 是否内销
    private String sale_flag;
    // 是否生产耗用
    private String prod_consu_flag;
    // 是否外销
    private String bexpsale;
    // 是否委外
    private String bProxyForeign;
    // 是否选项类
    private String bCheckItem;
    // 是否在制
    private String in_making_flag;
    // 是否折扣
    private String discount_flag;
    // 是否自制
    private String selfmake_flag;
    // 特征选配
    private String bFeatureMatch;
    // 需求跟踪方式
    private Integer irequiretrackstyle;
    // 是否应税劳务
    private String tax_serv_flag;
    // 允许BOM母件
    private String bbommain;
    // 允许BOM子件
    private String bbomsub;
    // 允许生产订单
    private String bproductbill;
    // 资产
    private String binvasset;
    // 自定义项1
    private String self_define1;
    // 自定义项2
    private String self_define2;
    // 自定义项3
    private String self_define3;
    // 自定义项4
    private String self_define4;
    // 自定义项5
    private String self_define5;
    // 自定义项6
    private String self_define6;
    // 自定义项7
    private String self_define7;
    // 自定义项8
    private String self_define8;
    // 自定义项9
    private String self_define9;
    // 自定义项10
    private String self_define10;
    // 自定义项11
    private String self_define11;
    // 自定义项12
    private String self_define12;
    // 自定义项13
    private String self_define13;
    // 自定义项14
    private String self_define14;
    // 自定义项15
    private String self_define15;
    // 自定义项16
    private String self_define16;
    // 自由项对象
    private List<InventoryFree> entry;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class InventoryFree {
        // 存货编码
        private String invcode;
        // 自由项1
        private String free1;
        // 自由项2
        private String free2;
        // 自由项3
        private String free3;
        // 自由项4
        private String free4;
        // 自由项5
        private String free5;
        // 自由项6
        private String free6;
        // 自由项7
        private String free7;
        // 自由项8
        private String free8;
        // 自由项9
        private String free9;
        // 自由项10
        private String free10;
    }
}
